Interoperability format translation and transformation between IFC architectural design file and simulation file formats

ABSTRACT

Automatically translating a building architecture file format (Industry Foundation Class) to a simulation file, in one aspect, may extract data and metadata used by a target simulation tool from a building architecture file. Interoperability data objects may be created and the extracted data is stored in the interoperability data objects. A model translation procedure may be prepared to identify a mapping from a Model View Definition to a translation and transformation function. The extracted data may be transformed using the data stored in the interoperability data objects, an input Model View Definition template, and the translation and transformation function to convert the extracted data to correct geometric values needed for a target simulation file format used by the target simulation tool. The simulation file in the target simulation file format may be generated.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application No.61/659,134 filed on Jun. 13, 2012, which is incorporated by referenceherein in its entirety.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

This invention was made with Government support under Grant No.DE-EE0004261 awarded by Department of Energy. The Government has certainrights in this invention. (IBM Contract No.: 4352-IBM-DOE-4261)

FIELD

The present application relates generally to computers, and computerapplications, and more particularly to interoperability formattranslation and transformation between Industry Foundation Class (IFC)architectural design file and simulation file formats such as EnergyPlusand/or Radiance.

BACKGROUND

In Building Information Modeling (BIM), various tools are usedthroughout various BIM phases such as architecture design, construction,simulation, and operations, and others, in generating electronic ordigital representations of physical and functional characteristics of afacility or building and managing them. Each tool used in one or more ofthose phases has its own file and data format. There is no standardother than Industry Foundation Class (IFC), and for the most part, nointeroperability among the tools. BIM Tools and File formats used by BIMtools, e.g., include design tools such as Autodesk AutoCAD™ using .DWGand .DWF formats, Revit™ using .RVT and .RFA formats, Google™ Sketchupusing .SKP format, simulation tools such as EnergyPlus, an energysimulation tool using .IDF format, Radiance, a lighting simulation toolusing .RAD format, CONTAM, an airflow/contaminant simulation using .PRJformat. For the BIM life cycle, all those different kinds of fileformats need to be supported. However, no interoperability betweenvarious BIM tools of different phases of the BIM Lifecycle

Moreover, little has been done to convert architecture design IFC fileformat to EnergyPlus (.IDF) file format, which is used by one of thepopular energy simulation tools, i.e., EnergyPlus. One of the reasons isthat it is quite complex both on the input and the output sides. Formore description of EnergyPlus, see,http://apps1.eere.energy.gov/buildings/energyplus/energyplus_about.cfm.(note the blank spaces are added in the URL so that the text does notautomatically convert to a hypertext link, in order to comply with theUSPTO requirement that the specification does not contain an embeddedhypertext).

On the input side, there are complexities in processing the input files.First, the architecture design files in IFC or in IFCXML, which can beconverted from an IFC file using existing conversion tools, are huge andvery difficult to parse. An average size of IFC file could be severalhundreds of Mega bytes. Conventional desktop computers are limited withmemory and central processing unit (CPU) power and unable to read in theentire file and keep it in the memory to query the elements, e.g.,parsing using DOM parser for IFCXML files. Instead, the files must beparsed in an iterative way. What makes the matter more complicated isthe enclosing IFC element that references the smaller or atomic elementsoften defined after the smaller or atomic elements, which are definedfirst in the files. Therefore, multiple passes of parsing must beexecuted to finally obtain the value in the targeted atomic elements.

On the output side, there are other complexities too. In the buildingdomain, multiple representations of a building object are possible.Intelligence is required to select only those necessary objects requiredby the simulation tools for an area, e.g., energy simulation.Unnecessary objects in the output file can potentially increase the sizeof the file, and consequently, increase the computational time andresources significantly while adding no value to the simulations. Inaddition, data needs to be transformed and translated to be used by thesimulation tools. Furthermore, it is difficult to identify the necessarymapping from the Model View Definition (MVD) to create the necessary thetranslation and transformation functions for a target simulation tool,e.g., EnergyPlus for energy simulation and Radiance for lightingsimulation

In summary, architectural design files (e.g., IFC) have different fileformats from the files that simulation tools use, e.g., energysimulation files as such EnergyPlus IDF files. Currently, EnergyPlus IDFfiles can be manually created for EnergyPlus to use. However, thismanual process is time consuming and requires significant domainknowledge in both the simulation areas, e.g., energy simulation and/orlighting simulation, as well as the simulation tools, e.g., EnergyPlusand/or Radiance. In an example of a classroom setting, an estimated 100hours per student was spent in using the data in architectural designfile in IFC to manually create an .IDF file for use by EnergyPlus to runenergy simulation. Hence, current manual efforts in translation andtransformation input files and producing output files for numerousdifferent building information models are both difficult andinefficient. Moreover, there is no automated way to extract data tocreate energy simulation files.

BRIEF SUMMARY

A method of automatically translating and transforming a buildingarchitecture file format to a simulation file, in one aspect, maycomprise extracting from a building architecture file, data and metadataused by a target simulation tool, e.g., energy simulation toolEnergyPlus and/or lighting simulation tool Radiance. The method may alsocomprise creating interoperability data objects and storing theextracted data in the interoperability data objects. The method mayfurther comprise preparing a model translation procedure to identify amapping from a Model View Definition to a translation and transformationfunction. The method may also comprise transforming the extracted datausing the data stored in the interoperability data objects, an inputModel View Definition template, and the translation and transformationfunction to convert the extracted data to correct geometric valuesneeded for a target simulation file format used by the target simulationtool. The method may also comprise generating the simulation file in thetarget simulation file format.

A method of automatically translating and transforming a buildingarchitecture file format to a simulation file, in another aspect, maycomprise extracting geometry data, metadata and context data from anIndustry Foundation Class architectural design file, the geometry data,metadata and context data selected based on a Model View Definitiontemplate. The method may also comprise storing the extracted data asinteroperability data objects. The method may further compriseidentifying a mapping from the Model View Definition template to one ormore format translation and transformation functions. The method mayalso comprise translating and transformation the data stored as theinteroperability data objects by executing said one or more formattranslation and transformation functions into a selected targetsimulation tool format.

A system for automatically translating and transforming a buildingarchitecture file format to a simulation file, in one aspect, maycomprise an extract data module operable to extract from an inputbuilding architecture file, data and metadata used by a targetsimulation tool. The system may also comprise a create interoperabilitydata object module operable to create interoperability data objects andstore the extracted data in the interoperability data objects. Thesystem may further comprise a prepare model translation procedure moduleoperable to prepare a model translation procedure to identify a mappingfrom a Model View Definition to a translation and transformationfunction. The system may also comprise a convert data module operable totransform the extracted data using the data stored in theinteroperability data objects, an input Model View Definition template,and the translation and transformation function to convert the extracteddata to correct geometric values needed for a target simulation fileformat used by the target simulation tool. The system may also comprisea targeted output file generation module operable to generate thesimulation file in the target simulation file format.

A computer readable storage medium storing a program of instructionsexecutable by a machine to perform one or more methods described hereinalso may be provided.

Further features as well as the structure and operation of variousembodiments are described in detail below with reference to theaccompanying drawings. In the drawings, like reference numbers indicateidentical or functionally similar elements.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates an interoperability format translation andtransformation of the present disclosure in one embodiment.

FIG. 2 illustrates a high-level functional flow for file formattranslation in one embodiment of the present disclosure.

FIG. 3 illustrates functionalities of an interoperability module in oneembodiment of the present disclosure.

FIG. 4 shows a set of sample interoperability data objects and theirusage in one embodiment of the present disclosure.

FIG. 5 is a high-level flow diagram illustrating a method of formattranslation/transformation in one embodiment of the present disclosure.

FIG. 6 is a high-level flow diagram illustrating a method of formattranslation/transformation in another embodiment of the presentdisclosure.

FIG. 7 is a diagram illustrating preparation of a model translationprocedure in one embodiment of the present disclosure.

FIG. 8 is a data model showing Model View Definition templates(MVDTemplate) in one embodiment of the present disclosure.

FIG. 9 illustrates a schematic of an example computer or processingsystem that may implement the translation/transformation methodology inone embodiment of the present disclosure.

DETAILED DESCRIPTION

An embodiment of the present disclosure provides a mechanism forinteroperability and format translation of building architecture designfiles (e.g., IFC) and other file formats used by building simulationtools such as energy and lighting simulation tools, e.g., EnergyPlus,Radiance, via the use of industry standard format, i.e., Model ViewDefinition (MVD). For example, the mechanism of the present disclosuremay properly and flexibly convert the IFC files to generate energysimulation EnergyPlus file format (IDF) and lighting simulation Radiance(.RAD) file formats. In another embodiment of the present disclosure,the generated energy simulation EnergyPlus file format (IDF) can then beused to generate lighting simulation Radiance (.RAD) file formats.

In one embodiment of the present disclosure, a process of creating otherfile formats from design files are automated by programmably extractingmetadata, other context information, and selected actual values parsedfrom design files (IFC). An embodiment of the present disclosure enablesthe use of standard formats, e.g., IFC and Model View Definition (MVD),for the building design space to eliminate the need to build tools forvarious formats. An embodiment of the present disclosure also providesreconfigurable building information exchange and formats, andtemplate-based mapping for enhanced user interface.

Briefly, building information modeling (BIM) refers to a process ofcreating and managing digital or electronic representations ofcorresponding physical facilities or buildings. The BIM models aretypically computer generated.

Industry Foundation Classes (IFC) is a current data model standard usedin architecture design file, registered with ISO as IS016739, andwritten in EXPRESS language. IFCXML is a schema of IFC in extensiblemarkup language (XML) format (seehttp://buildingsmart-tech.org/ifcXML/IFC2x3/FINAL/IFC2x3.xsd).

Model View Definition (MVD) is an IFC View Definition that defines asubset of the IFC schema needed to satisfy one or many exchangerequirements of the Architecture, Engineering & Construction (AEC)industry. MVD is a standard methodology and format documenting softwareimplementation requirements for standard IFC based data exchange,adopted by the buildingSMART International in the spring of 2005.Information Delivery Manual, IDM (also ISO/DIS 29481) describes a methodused and propagated by buildingSMART to define such exchangerequirements (See,http://www.buildingsmart-tech.org/specifications/ifc-view-definition).

BIMserver is a building information model server (BIMserver.org).BIMserver currently supports IFC2x3 model with set of functions forquerying and managing IFC elements, e.g., data model querying/merging,basic model validation, version control, basic access control via userauthentication, and model translation to ifcXML, CoBIE, CityGML,Collada, and KML.

FIG. 1 illustrates an interoperability format translation andtransformation of the present disclosure in one embodiment that enablesa holistic and seamless workflow integration across a BIM life cycle,i.e., design, simulation, operations, and others, and files used by eachof the phases of the BIM life cycle by, e.g., translating andtransforming between IFC architectural design file and simulation fileformats. In one aspect, a translate/transform module 102 of the presentdisclosure in one embodiment translates and transforms files in designarchitecture form (e.g., 104) to one or more forms used by varioussimulation tools (e.g., 106). The module 102 may be integrated orinvoked via a BIM enablement platform, e.g., described in co-owned andco-pending U.S. patent application Ser. No. 13/648,785 entitled“Building Information Management (BIM) Enablement Platform Of BIM DataModel, Data Management Services APIs, Restful APIs for BIM Content andMetadata Hosting, Format Exchange, and Workflow Enablement,” filed oneven date, which is incorporated herein by reference in its entirety.

The translate/transform functionality or module 102 in one embodiment ofthe present disclosure is presented that may extract data, metadata andcontext from a set of selected IFC elements of input files to createinteroperability data objects. In one embodiment, this selection anddata extraction process outputs only the necessary data, metadata andcontext to conserve both resources and processing time. The methodologyof the present disclosure in one embodiment also prepares a modeltranslation procedure to identify the mapping from the Model ViewDefinition to create the translation and transformation functions. Datais translated and transformed by executing the translating andtransforming functions using data stored in the interoperability dataobjects and Model View Definition Templates to perform template-baseddata conversion to the correct geometric values. Desired output isproduced in the target simulation file format (e.g., .IDF, .RAD). Table1 shows example source and target formats in format translation of thepresent disclosure in one embodiment.

TABLE 1 Translation interfaces/ Target Source Format Standard FormatIFC/IFCXML Interoperability Data Objects + IDF (Autodesk AutoCAD ™)Model View Definition (EnergyPlus) Template (MVDTemplate) IFC/IFCXMLInteroperability Data Objects + RAD (Autodesk AutoCAD ™) Model ViewDefinition (Radiance) Template (MVDTemplate)

FIG. 2 illustrates a high-level functional flow for file formattranslation in one embodiment of the present disclosure. An IFC InterOpmodule 202 enables interoperability between architectural design files204 and simulation files used by simulation engines 206. Examples ofsimulation files used by simulation engines as shown at 206 may includean energy simulation file in .IDF file format 214 used by EnergyPlus, alighting simulation file in .RAD file format 216 used by Radiance. TheIFC InterOp module 202 in one embodiment of the present disclosure takesthe architectural design files as input, e.g., one or more IFCfiles/IFCXML files 208, extracts data and metadata from the files 208and stores them in interoperability data objects of the presentdisclosure, uses the data values of the interoperability data objectswith one or more Model View Definition Templates (MVDTemplate) 210, andadditional metadata 212, e.g. schemas, building materialcharacteristics, external conditions, etc., to create translation andtransformation functions. The translation and transformation functionsare invoked to generate output files, e.g., 214, 216, in the appropriatesimulation tool format, e.g., in .IDF file format for EnergyPlus and/or.RAD file format for Radiance.

FIG. 3 illustrates functionalities (also referred to as modules) of theIFC InterOP module 302 in one embodiment of the present disclosure. AnIFC XML data extraction module 304 in one embodiment extracts data(e.g., geometric data, the metadata, and context data) from the inputIFC XML files 318, e.g., converted from IFC files by a converter 316,e.g. BIM server, parses the one or more files (e.g., 318) to extract a“selected subset” of the IFC elements and their geometric data valuesneeded for simulation, e.g., energy simulation (IDF file type) 324 forenergy simulation tool, e.g., EnergyPlus 322, lighting simulation (e.g.,RAD file type) 328 for lighting simulation tool, e.g., Radiance 326,and/or others. In another embodiment of the present disclosure, the dataextraction module 304 receives input 318 in IFC element format. Theseinput formats may be obtained via known or will be known converter 316that employs one or more methodologies to convert an IFC file 314 to anIFCXML file 318 or by invoking an IFC data element APIs of an IFC fileserver 316 to retrieve IFC elements. Once the input is in the properformat, e.g., IFC XML file or IFC element, the IFC InterOP module 302 ofthe present disclosure starts its processing. The data extractionfunction of the present disclosure 304 extracts the geometry data,metadata, and contexts that are needed to run the selected simulation.The necessary data is defined by machine readable MVDTemplate for eachdata translation/transformation. The MVDTemplates are read by computerprograms to select necessary data objects, which are thentranslated/transformed to appropriate data formats.

An interoperability data object creation module 306 in one embodimentmay store the data values parsed and extracted by the data extractionmodule 304 in an intermediate data structures referred to asinteroperability data objects in the present disclosure. Theinteroperability data objects of the present disclosure in oneembodiment contain or hold geometric data values, the metadata, andcontext data from the design tool files, e.g., IFC XML files. The datacontained in the interoperability data objects are used for dataconversion by a convert (translation/transformation) data module 310.

A model translation preparation module 308 in one embodiment may use astandard Model View Definition (MVD) for format translation. The modeltranslation preparation module 308 in one embodiment identifies thenecessary mapping from a MVD to format translation and transformationfunctions. For instance, the model translation preparation module 308uses a Model View Definition Template (MVDTemplate) 320 to createtranslation function definitions; and fills in the translation functionswith data, e.g., by invoking APIs provided by the interoperability dataobject creation module 306. The template can be used by third-partyvendors to translate into other output formats as needed.

Base standards for MVD define a subset of the IFC schema that satisfiesone or more data exchange requirements(http://buildingsmart.com/standards/mvd). MVDTemplate of the presentdisclosure in one embodiment defines an exemplar set of required dataneeded for format translation and transformation using an MVD instance.MVDTemplates may be extended or refined according to desiredimplementation and data schema.

A data conversion (translation/transformation) module 310 in oneembodiment converts the data to the geometric value using the formattranslation and transformation functions based on the offset, clipping,rotation, etc., to properly represent the placement on an energysimulation model file. A file generation module 312 in one embodimenttakes input from both the interoperability data objects and MVDTemplates320.

This file generation module 312 in one embodiment generates theappropriate simulation file format based on the data converted andgrouped together, e.g., for geometric viewing purpose by the dataconversion module 310.

FIG. 4 shows a set of sample interoperability data objects and theirusage in one embodiment of the present disclosure. The interoperabilitydata objects 402, 404, 406, 408 store intermediate data extracted fromselected elements of the IFC and/or IFC XML files to create simulationrelated output files for energy simulation, lighting simulation, andothers. For example, the interoperability data objects 402 store datadescribing the physical characteristics of a building, e.g., datarepresenting a wall and its related sub components, e.g., buildinggeometry such as shapes, polylines, Cartesian points, and theircontexts.

Energy simulation data objects 404 in one embodiment of the presentdisclosure store data needed to create energy simulation output files,e.g., building, building surface, construction, location, material,zone, simulation control, etc. These objects in one embodiment are usedto create EnergyPlus (EP) .IDF file as a sample implementation. The datato be stored in the energy simulation data objects 404 are extractedfrom selected elements of the IFC and/or IFC XML files in one embodimentof the present disclosure.

Lighting data objects 406 in one embodiment store data needed to createlighting simulation output files, e.g., interior surface polygon, lightsource, color/texture, surface properties, etc. These objects can beused to create Radiance .RAD file. The data to be stored in the lightingdata objects 406 are extracted from selected elements of the IFC and/orIFC XML files in one embodiment of the present disclosure.

Airflow data objects 408 in one embodiment of the present disclosurestore data needed to create airflow simulation output files, e.g.,contaminants data, simplified HVAC information, airflow network,pressure/initial value, schedule, geometry, etc. These objects can beused to create CONTAM file (.PRJ). The data to be stored in the airflowdata objects 408 are extracted from selected elements of the IFC and/orIFC XML files in one embodiment of the present disclosure.

FIG. 5 is a high-level flow diagram illustrating a method of formattransformation in one embodiment of the present disclosure. Items 502and 504 illustrate one way of obtaining IFC elements, e.g., Cartesianpoints of a line, of a polygon, etc. However, it should be understoodthat the methodologies of the present disclosure are not limited to onlythose ways. Other input mechanisms may be utilized to obtain such data.At 502, input source files are read. For instance, architecture file inIFC XML format may be read. In one embodiment of the present disclosure,if the files are in IFC format, they may be first transformed usingexisting tools to IFC XML file format before using as input in thismethodology in one embodiment.

At 504, for each wall in the input file, parse one wall at a time byreading the input file iteratively and extracting various data elementsrelated to a wall using an XML parser (e.g., Simple API for XML (SAX)parser) and applying the parsing rules. The parsing rules are defined inan MVDTemplate as a sequential procedure to identify, link, andtranslate IFC elements. The parsing may start out with an element thatrepresents the wall element and then iteratively parsing sub-elementspointed to by this enclosing wall element via identifiers (IDs), whichare unique identification numbers of IFC elements. In one aspect, theparsing rules may deal with large building design files, e.g., in IFCXML format, and handle the way the elements are read in reversed order,where the enclosing element read in after the enclosed elements. In oneembodiment of the present disclosure, recursive elements searchingmethods may be utilized.

At 506, as each relevant element is encountered during the parsing, datafrom the relevant element is extracted and corresponding one or moreinteroperability data objects are filled in with the data.

At 508, a model translation procedure is prepared to identify a mappingfrom a Model View Definition (MVD) to one or more translation andtransformation functions. For example, the mapping(s) could be one ormore function calls that read and translate IFC data to IDF data (forEnergyPlus energy simulation tool). The preparation at 508 includesusing the MVDTemplate to create translation function definitions, andfilling in the translation functions with data from the interoperabilitydata objects that correspond to the definitions in the MVDTemplate. Inone embodiment, the translation functions may be filled in with data,e.g., by invoking data query APIs of the interoperability data objectsor similar services.

The processing shown in 502, 504, 506 and 508 are repeated for allwalls. Thus, at 510, if there are more walls to process, then the logicreturns to 502. If all walls have been processed, at 512, the datastored in interoperability data objects is converted using theMVDTemplate. The conversion function takes various data from IFC andgenerates pre-defined data by mapping IFC data.

At 514, simulation output files are generated. The conversion functionscreate files using standard file input/output methods.

FIG. 6 is a high-level flow diagram illustrating a method of formattransformation in another embodiment of the present disclosure. Theprocessing at 602 and 604 shows in one embodiment a mechanism forobtaining data values from a building design IFC elements instead offrom an IFC/IFX XML file as shown in FIG. 5. For example, at 602, IFCelements may be retrieved from a BIM file repository server, e.g.,BIMServer, by invoking one or more Web services and/or APIs over theInternet. At 604, an IFC element, e.g. wall element, may be parsed,e.g., iteratively for one wall element at a time, to extract dataelements related to the wall, by applying the appropriate parsing rules.Steps 602, 604, or 602/604 can be chosen based on an input data format.At 606, relevant data defined by an MVDTemplate from the extracted dataelements are further extracted to create interoperability data objects.

At 608, a model translation procedure is prepared to identify a mappingfrom a Model View Definition (MVD) to one or more translation andtransformation functions. The preparation at 608 in one embodimentincludes using the MVDTemplate to create translation functiondefinitions, and filling in the translation functions with data from theinteroperability data objects that correspond to the definitions is theMVDTemplate.

The processing shown in 602, 604, 606 and 608 are repeated for allwalls. Thus, at 610, if there are more walls to process, then the logicreturns to 602. If all walls have been processed, at 612, the datastored in interoperability is converted using the MVDTemplate.

At 614, simulation output files such as IDF files are generated.

FIG. 7 is a diagram illustrating preparation of a format translation andtransformation procedure, e.g., shown in FIGS. 5 (508) and 6 (608), thatidentifies the mapping from the Model View Definition (MVD) to thetranslation and transformation functions, convert data, and generatetarget output files, in one embodiment of the present disclosure. Inputsto the method may comprise data extracted and stored in interoperabilitydata objects 702, and a Model View Definition Template (MVDTemplate)instance that defines, among other things, the MVD mapping template of aspecific simulation tool, e.g., EnergyPlus 704, e.g., and formattranslation and transformation function template, both in XML format,without data values. The interoperability data objects 702 are populatedwith data extracted from a source file (e.g., in IFC/IFCXML format) asdescribed above. As an example, this diagram shows a MVD mappingtemplate of EnergyPlus (IDF format) in an MVDTemplate instance 704 asinput.

The MVD mapping template of a specific tool in MVDTemplate 704 is usedto create translation and transformation function definition templates.For example, the translation and transformation function template inMVDTemplate 706, reusable for one or more simulation tools, e.g.,EnergyPlus and Radiance, etc., are filled in with the data in theinteroperability data objects 702, e.g., by invoking one or moreinteroperability data objects query APIs. The MVD mapping template of aspecific tool in MVDTemplate 704 requires domain knowledge to define byselecting certain required elements from the entire set of elements asdefined by the tool, e.g., EnergyPlus, based on the standard MVD.Further, translation and transformation function template 706 isadaptable to changes. In case of any future changes in geometricrepresentations by IFC, only a single set of the translation andtransformation function template 706 need to be modified to adapt to newchanges and can then be used again for multiple simulation tools.

A translation function (1) takes geometry, material properties, andother related data 702, (2) transforms and translates the data withpre-defined rules generated using MVDTemplate 704, (3) producesgeometric data needed in a format that a said tool can use as an input.The output from a set of translation functions are combined to create anexecutable simulation input to a tool, e.g., EnergyPlus for energysimulation.

The geometric data values, e.g., Cartesian points etc., needed in theoutput file 708 is produced by running the translation andtransformation functions 706 to produce the converted data. That is, anoutput file 708, which is compatible to use with one or more buildingsimulation tools, is generated, e.g., by running the translation andtransformation functions 706 using the extracted data 702 and thetemplate to fill in the Model View Definition Template instance 704. Inone embodiment of the present disclosure, converted data is data inmemory (not necessary in the right data format that can be consumed by asimulation tool), and output file is consumable data by a simulationtool.

Table 2 shows examples of Interoperability Data Objects Query APIs

public List getAllWalls( ); Given an IFC/IFC XML file, list all wallsfound in the file public IFCWall getWallbyId(String id); Return anIFCWall interoperability data object using the unique IFC elementidentifier of the wall element. // IFCWall APIs public IFCShapeRepgetShapeRepElem( ); Get an IFCShapeRep interoperability data object froman IFCWall element. public IFCGeoRepContext Get IFCGeoRepContextgetGeoRepContextElem( ); interoperability data object from an IFCWallelement. public getPolylineByWallId(String id); Get polylineinteroperability data objects for the IFC Wall element specified as inthe element id.

FIG. 8 is a data model showing Model View Definition Templates(MVDTemplate) in one embodiment of the present disclosure. In theMVDTemplate schema definition 820, the ‘XML Template’ field comprisesthe MVD mapping template of a tool, e.g., EnergyPlus (.IDF) shown inFIG. 7 at 702, and the translation and transforming function templateshown in FIG. 7 at 706. An MVDTemplate schema definition 820 is shownwith its relationship with other data elements in the data model,directly (BIMRespository 818, FormatMapping 812) and indirectly (816,814, 804, 810, 808, 802, 806). The MVDTemplate data entity 820 stores apointer to an instance of Model View Definition and all data related tothe MVD instance needed for format translation/transformation, whichalso includes the format schema information stored in FormatMapping 812and the files/data stored in the BIMRepository 818.

The following illustrates examples of a source IFC XML testing file andthe corresponding output file, for instance, used and generatedaccording to FIG. 5, or FIG. 6. They show an example output as a resultof the parsing and creating a set of IFC interoperability data objectsfor use by the translation/formation functions in one embodiment of thepresent disclosure. The below example shows parsing of 7 walls: twocompletely parsed Basic walls (first wall Id: “i132903”; second wall Id:“i133141”) in its entirety plus 5 more walls with only the top levelelement of <IfcWallStandardCase>: i133088”, “i133201”, “i133262”,“i133342”, and “i57108”.

Extracted Output of Wall ID “i132903”—

GeometricRepresentationContext ref:i132529

representationld:Axis

representationType:Curve2D

itemType:IfcPolyline, reference:i132851

Polyline CP are 2:

CartesianPoint: id=i132497, CP count=2, x=0.0. y=0.0, z=0.0

CartesianPoint: id=i132850, CP count=2, x=61.625. y=−0.0, z=0.0

GeometricRepresentationContextType:Model

coordSpaceDim:3

precison:1.0E-9

worldCoordSystemRef:i132528

Another example translation function is for an air-flow simulation usingCONTAM. The translation function takes a set of enclosing wall elementsto create a zone for air flow in FIG. 7 at 702. The said translationfunction uses Cartesian coordinates from the extracted walls to create a2-dimensional zone boundary. For example, after parsing geometry datafrom <IfcWallStandardCase> elements that are extracted in theinteroperability objects in FIG. 7 at 702, the translation function(similar to 706 in FIG. 7) uses a set of geometry data to calculateprojected 2-dimensional view of a room. The calculated edge points ofthe projected room then are expressed in 2-dimensional Cartesian points,which then may be converted to a zone definition in CONTAM data model. Aleak entry in CONTAM model can also be extracted from various buildingelements described in IFC components such as fenestration surfaces andopen vents. The translation function takes the size of the saidcomponents, calculates the leak coefficient of each component, andgenerates input data for CONTAM simulation.

FIG. 9 illustrates a schematic of an example computer or processingsystem that may implement the translation/transformation methodology ofthe present disclosure. The computer system is only one example of asuitable processing system and is not intended to suggest any limitationas to the scope of use or functionality of embodiments of themethodology described herein. The processing system shown may beoperational with numerous other general purpose or special purposecomputing system environments or configurations. Examples of well-knowncomputing systems, environments, and/or configurations that may besuitable for use with the processing system shown in FIG. 9 may include,but are not limited to, personal computer systems, server computersystems, thin clients, thick clients, handheld or laptop devices,multiprocessor systems, microprocessor-based systems, set top boxes,programmable consumer electronics, network PCs, minicomputer systems,mainframe computer systems, and distributed cloud computing environmentsthat include any of the above systems or devices, and the like.

The computer system may be described in the general context of computersystem executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.The computer system may be practiced in distributed cloud computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed cloudcomputing environment, program modules may be located in both local andremote computer system storage media including memory storage devices.

The components of computer system may include, but are not limited to,one or more processors or processing units 12, a system memory 16, and abus 14 that couples various system components including system memory 16to processor 12. The processor 12 may include one or more components ofa translation/transformation module 10 that performs the methodsdescribed herein. The module 10 may be programmed into the integratedcircuits of the processor 12, or loaded from memory 16, storage device18, or network 24 or combinations thereof.

Bus 14 may represent one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnects (PCI) bus.

Computer system may include a variety of computer system readable media.Such media may be any available media that is accessible by computersystem, and it may include both volatile and non-volatile media,removable and non-removable media.

System memory 16 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) and/or cachememory or others. Computer system may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 18 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(e.g., a “hard drive”). Although not shown, a magnetic disk drive forreading from and writing to a removable, non-volatile magnetic disk(e.g., a “floppy disk”), and an optical disk drive for reading from orwriting to a removable, non-volatile optical disk such as a CD-ROM,DVD-ROM or other optical media can be provided. In such instances, eachcan be connected to bus 14 by one or more data media interfaces.

Computer system may also communicate with one or more external devices26 such as a keyboard, a pointing device, a display 28, etc.; one ormore devices that enable a user to interact with computer system; and/orany devices (e.g., network card, modem, etc.) that enable computersystem to communicate with one or more other computing devices. Suchcommunication can occur via Input/Output (I/O) interfaces 20.

Still yet, computer system can communicate with one or more networks 24such as a local area network (LAN), a general wide area network (WAN),and/or a public network (e.g., the Internet) via network adapter 22. Asdepicted, network adapter 22 communicates with the other components ofcomputer system via bus 14. It should be understood that although notshown, other hardware and/or software components could be used inconjunction with computer system. Examples include, but are not limitedto: microcode, device drivers, redundant processing units, external diskdrive arrays, RAID systems, tape drives, and data archival storagesystems, etc.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages, a scripting language such as Perl, VBS or similarlanguages, and/or functional languages such as Lisp and ML andlogic-oriented languages such as Prolog. The program code may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider).

Aspects of the present invention are described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The computer program product may comprise all the respective featuresenabling the implementation of the methodology described herein, andwhich—when loaded in a computer system—is able to carry out the methods.Computer program, software program, program, or software, in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: (a) conversion to anotherlanguage, code or notation; and/or (b) reproduction in a differentmaterial form.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements, if any, in the claims below areintended to include any structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed. The description of the present invention has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The embodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

Various aspects of the present disclosure may be embodied as a program,software, or computer instructions embodied in a computer or machineusable or readable medium, which causes the computer or machine toperform the steps of the method when executed on the computer,processor, and/or machine. A program storage device readable by amachine, tangibly embodying a program of instructions executable by themachine to perform various functionalities and methods described in thepresent disclosure is also provided.

The system and method of the present disclosure may be implemented andrun on a general-purpose computer or special-purpose computer system.The terms “computer system” and “computer network” as may be used in thepresent application may include a variety of combinations of fixedand/or portable computer hardware, software, peripherals, and storagedevices. The computer system may include a plurality of individualcomponents that are networked or otherwise linked to performcollaboratively, or may include one or more stand-alone components. Thehardware and software components of the computer system of the presentapplication may include and may be included within fixed and portabledevices such as desktop, laptop, and/or server. A module may be acomponent of a device, software, program, or system that implements some“functionality”, which can be embodied as software, hardware, firmware,electronic circuitry, or etc.

The embodiments described above are illustrative examples and it shouldnot be construed that the present invention is limited to theseparticular embodiments. Thus, various changes and modifications may beeffected by one skilled in the art without departing from the spirit orscope of the invention as defined in the appended claims.

We claim:
 1. A method for automatically translating and transforming abuilding architecture file format to a simulation file, comprising:extracting from a building architecture file, data and metadata used bya target simulation tool; creating interoperability data objects andstoring the extracted data in the interoperability data objects;preparing a model translation procedure to identify a mapping from aModel View Definition to a translation and transformation function;transforming the extracted data using the data stored in theinteroperability data objects, an input Model View Definition template,and the translation and transformation function to convert the extracteddata to correct geometric values needed for a target simulation fileformat used by the target simulation tool; and generating the simulationfile in the target simulation file format, wherein the preparing of themodel translation procedure comprises: creating translation functiondefinitions; and filling in the translation and transformation functionwith data of the one or more interoperability data objects, wherein thetranslating and transforming function comprises: a function to performgeometric transformation of data values stored in the interoperabilitydata objects to specific building simulation models by converting thedata values to geometric values based on at least offset, clipping, androtation to represent a placement on an energy simulation model file;logic to perform the transforming of the extracted data stored in theinteroperability data objects into the target simulation file format;and a function to fill in the module view definition template with theconverted geometric values for the simulation file in the targetsimulation file format.
 2. The method of claim 1, wherein the extractingof the data and metadata from the building architecture file comprises:parsing and extracting geometric data, the metadata, and context datafrom a selected subset of IFC elements of the building architecturefile, the selected subset including only items needed by the targetsimulation tool, using an XML parser and governed by a set of parsingrules; retrieving IFC elements of the building architecture file usingweb-based APIs from a building information management data filerepository to extract geometric data, the metadata, and context data; orcombinations thereof.
 3. The method of claim 1, wherein the parsingrules comprises handling reading elements in a reversed order.
 4. Themethod of claim 1, wherein the storing of the extracted data in theinteroperability data objects comprises storing geometric data values,the metadata and context data from the building architecture file. 5.The method of claim 1, wherein the interoperability data objectsrepresent a set of selected building objects needed to generate a targetsimulation file used by the target simulation tool.
 6. The method ofclaim 1, further comprising invoking one or more interoperability dataobjects query APIs to retrieve the data for filling in the translationand transformation function.
 7. The method of claim 1, wherein thetransforming of the extracted data further comprises translating andtransforming the extracted data to geometric values needed for thetarget simulation file format.
 8. The method of claim 1, wherein theModel View Definition template comprises schema formats of both thebuilding architecture file and the simulation file, and a set of queriesto the interoperability data objects.
 9. The method of claim 8, whereinthe set of queries to the interoperability data objects is supported bya building interoperability database schema.
 10. The method of claim 9,wherein the building interoperability database schema uses relationalobject database structure to support related building object models. 11.The method of claim 1, wherein the generating of the simulation filecomprises filling in an instance of the module view definition templatewith the transformed extracted data.
 12. A method of automaticallytranslating and transforming a building architecture file format to asimulation file, comprising: extracting geometry data, metadata andcontext data from an Industry Foundation Class architectural designfile, the geometry data, metadata and context data selected based on aModel View Definition template; storing the extracted data asinteroperability data objects; identifying a mapping from the Model ViewDefinition template to one or more format translation and transformationfunctions; and translating and transformation the data stored as theinteroperability data objects by executing said one or more formattranslation and transformation functions into a selected targetsimulation tool format, the translating and transforming functioncomprising: a function to perform geometric transformation of datavalues stored in the interoperability data objects to specific buildingsimulation models by converting the data values to geometric valuesbased on at least offset, clipping, and rotation to represent aplacement on an energy simulation model file; logic to perform thetransforming of the extracted data stored in the interoperability dataobjects into the target simulation file format; and a function to fillin the module view definition template with the converted geometricvalues for the simulation file in the target simulation file format. 13.The method of claim 12, further comprising: generating a target outputfile comprising the translated and transformed data in the selectedtarget simulation tool format.